Resazurin metabolic assays are used to measure the metabolic rate of
marine organisms. This protocol has been developed for use in oysters,
but can be adapted for other organisms.
Standard Operating Protocol (SOP)
Written 20250401 by Ariana Huffmyer.
Materials and preparing solutions
- Stock resazurin solution
To make the resazurin stock solution (10 mL) mix the following. We
will use this solution for multiple trials.
Store in a dark fridge or freezer.
- Working resazurin solution
First, determine the volume of resazurin required depending on the
size of your organism and the container size. Here are some examples
that we have used before. We recommend performing preliminary trials to
ensure that a change in resazurin fluorescence can be detected over the
time scale desired. This protocol was developed to detect a change in
resazurin fluorescence within 5 hours in small seed (<7mm) and larger
seed (10-30mm).
- Small seed (<7mm length): trials conducted in 96 well plates
(300uL volume in each well)
- Medium seed (15-40 mm length): trials conducted in small plastic
cups (20 mL volume)
- Large seed/adults (>40 mm length): trials can be conducted in
tripour cups, beakers, or plastic cups. Scale volume appropriately. The
animals should be fully submerged.
To prepare the working solution of resazurin, prepare the
following.
Desired working volume x 0.98666 = ___ mL filtered seawater (DI
water with Instant Ocean adjusted to 23-25 ppt or filtered (<1um)
seawater)
Desired working volume x 0.00222 = ___ mL resazurin stock
solution as made above in step 1
Desired working volume x 0.001 = ___ mL DMSO
Desired working volume x 0.01 = ___ mL antibiotic solution 100x Penn/Strep
& 100x Fungizone - this should be kept frozen in a dark freezer
and thawed before use (thaw in the dark or cover with aluminum
foil)
To prepare the working solution of resazurin, prepare the
following.
This recipe is to make 150 mL of working stock. To run a single 96
well plate, approximately 35 mL will be required (allowing for extra for
re-do’s or errors). For example, if we are running 4 total plates, we
will need to prepare 4 x 35 mL = 150 mL of working solution. Increase if
more is required.
- 148 mL seawater (DI water with Instant Ocean adjusted to 23-25 ppt
or filtered (<1um) seawater)
- 333 µL resazurin stock solution as made above in step 1
- 150 µL DMSO
- 1.5 mL antibiotic solution 100x Penn/Strep
& 100x Fungizone
Store at 4°C in dark fridge until use. We recommend making a fresh
batch of working stock within 7 days of use.
- Supplies
- Bench top incubators
- Temperature
loggers to be placed in incubators at treatment conditions
- Paper towels and bench paper/pads
- Tweezers, transfer pipettes, and forceps
- Dissecting microscope
- Spectrophotometer plate reader that detects fluorescence (e.g.,
FLx800) and software
- Plate reader filters with excitation wavelength of 530 and emission
wavelength of 590 (we are currently using an excitation 528 wavelength
filter with a bandpass of 20 and an emission 590 wavelength filter with
a bandpass of 20)
- P1000 pipette
- Scale bar/ruler
- Camera/phone camera
- Plastic cups, beakers, plates, or other vessel for incubations
- 96 well plate (for taking readings, you will need this regardless of
container type)
Label plates with identifying number (e.g. “Plate 1”, “Plate 2”) or
label cups with unique numbers/identifiers.
Protocol
Conduct measurements at treatments desired. We typically conduct
measurements at a control temperature and a high temperature each day.
If multiple treatments are desired over multiple days, be sure to run a
control treatment each day as reference. Ensure you account for tank
effects or other batch effects by randomizing loading order, position in
incubators, etc.
For oysters, we recommend the following treatments:
- For acute stress and survival testing: control temperature (10-20°C)
and acute high temperature (40-44°C)
- For thermal performance testing: control temperature (10-20°C),
36°C, 38°C, 40°C, 42°C
Schedule
Each day, the schedule will be as follows. Note that this schedule is
written for a single person. If there are 2-3 people, the time frame for
loading and assessing survival will be shorter than written here.
08:00-09:00: Load plates with oysters, take size images, and load
resazurin solution
09:00: Time 0 measurement
10:00: Time 1 measurement
11:00: Time 2 measurement
12:00: Time 3 measurement
13:00: Time 4 measurement
14:00: Time 5 measurement 14:00-16:00: Survival assessments and clean
up
Note that it is critical to perform survival assessments so that you
can analyze resazurin metabolic response for those that survive and
those that die during the trials. If performing trials in 96 well plates
or other small containers, we recommend performing survival assessment
at the end of the incubation. If you are conducting trials in larger
cups where you can see the animals without removing the resazurin
solution, you can assess survival at each time point.
Load and prepare samples
Before starting, set the incubator at the desired temperature.
- Prepare animals for assays. Track the source tank, treatment, or
other identifying information.
- Add animals into labeled plates or containers and placing them into
the empty container.
- Have at least n=6 empty wells/containers at each temperature to
serve as blanks.
- Write the location of wells on a plate map if using plates.
- Allocate the animals either into their designated cup or onto the
lid of the plate.
- Take images of each animal with a scale bar with their identifying
information in the photograph. See an example below.
- Move the animals into their respective wells in the plate if you
placed them on the lid for a photograph.
- Fill each well with the desired amount of resazurin working stock at
ambient temperature using a microchannel pipette or graduated
cylinder.
An example of photograph for size measurements:

Measurements
- Turn on the computer and plate reader. Open the plate reader
software.
- Create a new protocol that conducts end point measurements from the
top of the plate using an excitation wavelength of 530 and emission
wavelength of 590 nm.
- Name the protocol and save. This process may vary depending on your
instrument.
- Take a T0 initial measurement - this is critical! If using a 96-well
plate with small animals, you can place the plate with the animals
directly on the plate reader (do not have the lid on the plate). If you
have animals in cups, take a small sample (250uL) of the resazurin
liquid from each container, place into a 96-well plate, and then conduct
the measurements. If you use this method, be sure to make a plate map of
the location of the samples and identifying information. Conduct
measurements for blanks and samples.
- Put the first plate on the loading platform.
- Collect and export readings as directed in the plate software.
- Save the file as:
YYYYMMDD_TemperatureTreatment_Plate#_T0.xlsx. For example,
20250128_40C_Plate#_T3.xlsx.
- Save the data to a flash drive and add to GitHub or data repository.
Here is an example of our files at the GitHub
repository here.
- Record the time of the measurement.
- Repeat for any remaining plates or treatments.
- Move the animals to the incubator at their respective temperatures
and record the temperature in the incubators.
- Repeat at 1, 2, 3, 4, and 5 hours of incubation. A minimum
incubation time is 4 hours with 5-6 hours as optional time points.
Here is an example of the plate maps from our work.

Survival measurements
- Either each hour (if you can easily see the animals in larger cups)
or at the end of the incubation (for animals in 96 well plates), conduct
survival assessments.
- If using plates, prepare a plate map for recording the assessments -
this is an easy method to keep track of the assessments. If you are not
using plates, make a list of all samples with columns for recording
survival at each time point.
- In the plate maps, you will record which wells have dead oysters.
Use an “X” to mark wells with dead oysters. You can also record “dead”
and “alive” in a list format.
- Start with high temperature plates.
- If working with shellfish, use tweezers/forceps to take each animal
out and examine in a petri dish filled with DI water under a dissecting
scope. Determine if the oyster is dead by placing the cup side of the
oyster down and gently taping/moving the shell. If the shell is open and
remains open after tapping, the oyster is dead. If the shell is closed
tight or closes after tapping, the oyster is alive. Use other
determination methods for other organisms.
- Record any notes of oysters that were damaged by the tweezers or
record any other notes of interest.
- After examining each oyster, move it to a beaker. Discard oysters
after the measurements are done.
- Repeat for all plates and samples.
- Discard of resazurin in the appropriate waste bin labeled for
hazardous waste. Empty plates into a tripour and pour into a labeled
waste container.
- Rise plates thoroughly in the sink and allow to dry for the next
trial. Cups and materials can be re used.
- Generate a data frame that has columns for sample ID, treatments,
date, and other relevant information. Add a column designated
“mortality” and add a 0 for alive and 1 for dead animals. See examples
below.
Here is an example of the data sheet in the notebook from our
work.

Size measurements
From the images, measure the size of the organism. For oysters, we
often use maximum length (mm). Other measurements may be more
appropriate for other organisms. This will be used to normalize
resazurin measurements.
Record size from measurements of images (e.g., using ImageJ) in a
data frame. See examples below.
Data preparation and analysis
Prepare the following data frames (see examples at the links
below):
- Size measurements: columns for sample ID, date, treatment, and size
measurement (e.g., length in mm)
- Mortality assessment: columns for sample ID, date, treatment, and
mortality assessment (e.g., 0 for alive and 1 for dead)
- Metadata: columns for sample ID, date, treatment, tank or batch
effects, species, well/cup ID, and sample type (i.e., “blank” or
“sample”)
- Resazurin files: files exported from plate reader software that
contain fluorescence readings for each well of the plate
Conduct the following analysis steps (see R scripts available for use
below):
- Read in data
- Normalize all fluorescence values to the initial time point
(fluorescence at time X divided by fluorescence at time 0)
- Calculate the mean value for blanks within each batch (e.g., mean of
all blanks in plate 1 at high temperature on day 1)
- Subtract the mean blank value from the fluorescence value of each
sample from the respective batch
- Size normalize the data by dividing fluorescence values by size of
each sample
- Proceed with visualization and statistical analyses, including
testing for effects of treatment or other effects of interest and
examining metabolic differences between animals that lived and animals
that died during the trials. See examples in our GitHub repositories
linked below.